<?php

namespace Framework;

class Session
{
     /**
      * @return void 无返回值
      */
      public static function start()
      {
          if(session_status() == PHP_SESSION_NONE){
               session_start();
          }
      }
      /**
       * @param string $key 会话键名
       * @param mixed $value 要存储的值
       * @return void 无返回值
       */
      public static function set($key,$value)
      {
           $_SESSION[$key]=$value;
      }
      /**
       * @param string $key 会话键名
       * @param mixed $default 如果键不存在时返回的默认值
       * @return mixed 返回会话键对应的值或默认值
       */
      public static function get($key,$default=null)
      {
           return isset($_SESSION[$key]) ? $_SESSION[$key] : $default;
      }


      /**
       * @param string $key 会话键名
       * @return bool 无返回值
       */
      public static function has($key)
      {
           return isset($_SESSION[$key]);
      }


       /**
       * @param string $key 会话键名
       * @return void 无返回值
       */
      public static function clear($key)
      {
           if(isset($_SESSION[$key])){
              unset($_SESSION[$key]);
           }
      }
      /**
       * @return void 无返回值
       */
      public static function clearAll()
      {
          session_unset();
          session_destroy();
      }

      /**
       * @param string $key
       * @param string $message
       * @return void
       */
      public static function setFlashMessage($key,$message)
      {
           self::set('flash_' . $key,$message);
      }
      /**
       * @param string $key
       * @param mixed $default
       * @return string
       */
      public static function getFlashMessage($key,$default=null)
      {
          $message=self::get('flash_' . $key,$default);
          self::clear('flash_' . $key);
          return $message;
      }

}